#ifndef _TOU_H
#define _TOU_H

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <unistd.h>
#include <pthread.h>
#include <malloc.h>
#include <string.h>
#include <sys/select.h>
#include <sys/time.h>
#include <sys/epoll.h>
#include <sqlite3.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <fcntl.h>

// 数据库的指针
sqlite3 * pDB;

//消息的意图/类型
#define REGISTER 0  //注册信息
#define INQUIRE 1 //注册手机号查询
#define LOGIN 2 //登录
#define RETRIEVE 3 //找密
#define CHAT_GROUP 5 //群聊
#define LOGOUT 6 //退出系统
#define FINDACCOUNT 7 //查找账号
#define ADDFREIND 8 //添加好友
#define LOGOFF 9 //退出登录
#define XXX 10 //结束传递
#define ALLMES 11//查看所有信息
#define YICHA 12 //已查看
#define ALONEJIA 13//加入聊天
#define ALONETUI 14//退出聊天
#define ALONECHAT 15//发送聊天

#define YES 100
#define NO  101

#define ID "172.23.194.60"    //服务器id
#define PORT 8080               //服务器端口
#define MES_BUF_SIZE 1024        //传送字节数
#define INFORM "information"  //聊天
#define GROUP "group_chat" //群聊
#define REQUEST "request" //好友申请
#define PEND "pending"   //待处理
#define PRO "processed"  //已同意
#define SUB "submitted" //已拒绝
#define READ "read" //已读
#define UNREAD "unread" //未读

//传送结构体
typedef struct buf{
    unsigned char choice;    //选择
    char buf[MES_BUF_SIZE-1];
}BUF;

//用户信息结构体
typedef struct userInit{
    char PhoneNumber[20];  //手机号
    char UserName[128];     //用户名
    char RetrieveQuestion[128]; //找回问题
    char QuestionAnswer[128];   //问题答案
    char AccountNumber[20];     //账号
    char Password[20];           //密码
}USERMES;

typedef struct queryResult
{
    char ** ppResult;
    int row;
    int col;
}QUERYRESULT;

//登录在线
typedef struct zaixian{
    int fd;
    char zh[20];
}ONLINE;

typedef struct math{
    int quantity;
}COUNT;

typedef struct fasong{
    char haoyou[20];  //对方账号
    char neirong[980]; //消息内容
    char ziji[20];     //自己账号
}FASONG;

#endif